iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
Modern Web

給前端新手的圖文故事系列 第 26

學習如何使用 TypeScript 在 React 專案

  • 分享至 

  • xImage
  •  

TypeScript 的一些重要特點和概念

類型定義:TypeScript 允許開發者定義變數、參數、函式和物件等的類型。這些類型定義可以幫助開發者明確地聲明變數的類型,從而提供更好的程式提示文字與類型檢查。

靜態類型檢查:TypeScript 在編譯程式之前執行類型檢查,並識別潛在的類型錯誤。這有助於減少程式運行時的錯誤,並提高程式的穩定性,筆如果有一個 type 是 string 的欄位若做了數字運算,則 TypeScript 將會報錯並提供訊息。

自動完成和程式提示:TypeScript 提供強大的自動完成和程式提示功能,這使得開發過程更加高效。開發者可以輕鬆訪問可用的函數、屬性和類型,以提高開發速度。

擴展 JavaScript 生態系統:TypeScript 是 JavaScript 的超集,這意味著現有的 JavaScript 程式可以無縫運行,並且開發者可以逐步將 TypeScript 引入現有專案中。

模組和命名空間:TypeScript 提供了模組和命名空間的支持,以協助組織和管理程式,使程式庫的開發和共享更加容易。

最新 ECMAScript 功能支持:TypeScript 支持最新的 ECMAScript 標準,包括 ES6、ES7 等,以使開發者能夠使用最新的 JavaScript 功能。

開源和社區驅動:TypeScript 是一個開源項目,由 Microsoft 開發和維護,但也有一個龐大的社區支持。這個社區貢獻了許多有用的庫和工具,以擴展 TypeScript 的功能。

總之,TypeScript 是一個強大的工具,可幫助開發者在 JavaScript 開發中提高程式品質、可讀性和可維護性。它特別適用於大型應用程式和團隊開發,並提供了豐富的功能,以提高開發體驗和程式的可靠性。

學習如何在 React 專案中使用 TypeScript

  1. 創建 TypeScript 專案

    • 如果你正在開始一個新的 React 專案,可以使用 Create React App 創建一個 TypeScript 專案:

      npx create-react-app my-app --template typescript
      
    • 如果你已經有一個現有的 React 專案,可以手動將 TypeScript 集成到專案中,並確保你的構建工具(例如 Webpack 或 Parcel)支持 TypeScript。

  2. 使用 .tsx 文件擴展名
    在 React 專案中,使用 .tsx 文件擴展名來創建包含 JSX 程式的文件。這告訴 TypeScript 解析 JSX 並對其進行類型檢查。
    當然你可以繼續使用 jsx 或是 js 作為副檔名,但這將失去 typescript 的檢查功能與相關應用

  3. 添加 TypeScript 定義
    TypeScript 需要瞭解你的 React 組件的類型信息。你可以使用 .d.ts 文件創建或安裝相應的類型定義包,以定義你的組件和庫的類型。例如,對於 React,你可以安裝 @types/react@types/react-dom 來引入 type。

  4. 類型定義組件
    使用 TypeScript 定義你的 React 組件的屬性和狀態類型。你可以使用 React.FC 作為函數組件的類型定義,例如:

    import React from 'react';
    
    interface Props {
      name: string;
    }
    
    const MyComponent: React.FC<Props> = ({ name }) => {
      return <div>Hello, {name}!</div>;
    };
    

    或者,如果你使用類組件,可以使用 React.Component 類型:

    import React, { Component } from 'react';
    
    interface Props {
      name: string;
    }
    
    class MyComponent extends Component<Props> {
      render() {
        return <div>Hello, {this.props.name}!</div>;
      }
    }
    

當然,我們也可以簡單地使用它:

interface Props {
  name: string;
}

const MyComponent = ({ name }:Props) => {
  return <div>Hello, {name}!</div>;
};
  1. 使用泛型
    TypeScript 的泛型可以幫助你創建可重用的組件,並為其提供更靈活的類型支持。例如,你可以使用泛型來創建通用的列表組件:

    import React from 'react';
    
    interface ListItem<T> {
      item: T;
    }
    
    function List<T>({ items }: { items: ListItem<T>[] }) {
      return (
        <ul>
          {items.map((item, index) => (
            <li key={index}>{item.item}</li>
          ))}
        </ul>
      );
    }
    
  2. 處理事件
    在處理事件時,使用合適的事件類型定義,以確保事件處理函數具有正確的參數和返回類型。

    import React, { MouseEvent } from 'react';
    
    function handleClick(event: MouseEvent<HTMLButtonElement>) {
      console.log('Button clicked');
    }
    
    <button onClick={handleClick}>Click Me</button>;
    
  3. 使用 React Hooks
    如果你使用 React Hooks,確保瞭解每個 Hook 的類型定義。例如,使用 useState Hook 時,可以使用泛型來指定狀態的類型:

    import React, { useState } from 'react';
    
    const [count, setCount] = useState<number>(0);
    
  4. 類型檢查和調試
    TypeScript 會自動進行類型檢查,並在編譯時捕獲潛在的錯誤。使用 TypeScript 的開發工具,如 Visual Studio Code,可以獲得更好的自動完成和錯誤提示。另外,不要忘記在開發期間仔細閱讀 TypeScript 的錯誤消息,以修復錯誤。

總之,使用 TypeScript 在 React 專案中可以提高程式品質,減少錯誤,並提供更好的開發體驗。遵循上述步驟和最佳實踐,可以幫助你順利集成 TypeScript 到你的 React 項目中。


上一篇
認知 React 的 Higher-Order Components
下一篇
了解 Next.js 的應用與基礎特性
系列文
給前端新手的圖文故事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言